package problem2_Add_Two_Numbers;

public class Solution {
	public class ListNode {
		int val;
		ListNode next;

		public ListNode(int val) {
			super();
			this.val = val;
		}
	}

	public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
		ListNode dummyHead=new ListNode(0);
		ListNode last=dummyHead;
		int carry=0;
		while(l1!=null||l2!=null){
			int x=l1==null? 0:l1.val;
			int y=l2==null? 0:l2.val;
			int sum=carry+x+y;
			carry=sum/10;
			last.next=new ListNode(sum%10);
			last=last.next;
			if(l1!=null) l1=l1.next;
			if(l2!=null) l2=l2.next;
		}
		if(carry>0)
			last.next=new ListNode(carry);
		return dummyHead.next;
	}
}
